Lab 10:
library(tidyverse)
## ── Attaching packages ──────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.1.0 ✔ purrr 0.2.5
## ✔ tibble 1.4.2 ✔ dplyr 0.7.6
## ✔ tidyr 0.8.1 ✔ stringr 1.3.1
## ✔ readr 1.1.1 ✔ forcats 0.3.0
## ── Conflicts ─────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(janitor)
library(lubridate)
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
##
## date
library(gganimate)
# extras?
library(RColorBrewer)
library(scales)
##
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
##
## discard
## The following object is masked from 'package:readr':
##
## col_factor
library(ggimage)
Use janitor package to clean up the sb_buoy_df column names (to snake_case):
## Parsed with column specification:
## cols(
## .default = col_integer(),
## `YYYY-MM-DD` = col_character(),
## `HH:MM (LST)` = col_time(format = ""),
## `Zenith (deg)` = col_double(),
## `Azimuth (deg)` = col_double(),
## `Precip Wat (cm)` = col_double(),
## `AOD (unitless)` = col_double(),
## `AOD RAN (unitless)` = col_double(),
## `Ozone (cm)` = col_double(),
## `Albedo (unitless)` = col_double()
## )
## See spec(...) for full column specifications.
## Warning in rbind(names(probs), probs_f): number of columns of result is not
## a multiple of vector length (arg 1)
## Warning: 365 parsing failures.
## row # A tibble: 5 x 5 col row col expected actual file expected <int> <chr> <chr> <chr> <chr> actual 1 24 HH:MM (LST) valid date 24:00:00 'solar_sb_2010.csv' file 2 48 HH:MM (LST) valid date 24:00:00 'solar_sb_2010.csv' row 3 72 HH:MM (LST) valid date 24:00:00 'solar_sb_2010.csv' col 4 96 HH:MM (LST) valid date 24:00:00 'solar_sb_2010.csv' expected 5 120 HH:MM (LST) valid date 24:00:00 'solar_sb_2010.csv'
## ... ................. ... ........................................................... ........ ........................................................... ...... ........................................................... .... ........................................................... ... ........................................................... ... ........................................................... ........ ...........................................................
## See problems(...) for more details.
## Parsed with column specification:
## cols(
## .default = col_integer(),
## `YYYY-MM-DD` = col_character(),
## `HH:MM (LST)` = col_time(format = ""),
## `Zenith (deg)` = col_double(),
## `Azimuth (deg)` = col_double(),
## `Precip Wat (cm)` = col_double(),
## `AOD (unitless)` = col_double(),
## `AOD RAN (unitless)` = col_double(),
## `Ozone (cm)` = col_double(),
## `Albedo (unitless)` = col_double()
## )
## See spec(...) for full column specifications.
## Warning in rbind(names(probs), probs_f): number of columns of result is not
## a multiple of vector length (arg 1)
## Warning: 365 parsing failures.
## row # A tibble: 5 x 5 col row col expected actual file expected <int> <chr> <chr> <chr> <chr> actual 1 24 HH:MM (LST) valid date 24:00:00 'solar_ak_2010.csv' file 2 48 HH:MM (LST) valid date 24:00:00 'solar_ak_2010.csv' row 3 72 HH:MM (LST) valid date 24:00:00 'solar_ak_2010.csv' col 4 96 HH:MM (LST) valid date 24:00:00 'solar_ak_2010.csv' expected 5 120 HH:MM (LST) valid date 24:00:00 'solar_ak_2010.csv'
## ... ................. ... ........................................................... ........ ........................................................... ...... ........................................................... .... ........................................................... ... ........................................................... ... ........................................................... ........ ...........................................................
## See problems(...) for more details.
## Parsed with column specification:
## cols(
## .default = col_integer(),
## `YYYY-MM-DD` = col_character(),
## `HH:MM (LST)` = col_time(format = ""),
## `Zenith (deg)` = col_double(),
## `Azimuth (deg)` = col_double(),
## `Precip Wat (cm)` = col_double(),
## `AOD (unitless)` = col_double(),
## `AOD RAN (unitless)` = col_double(),
## `Ozone (cm)` = col_double(),
## `Albedo (unitless)` = col_double()
## )
## See spec(...) for full column specifications.
## Warning in rbind(names(probs), probs_f): number of columns of result is not
## a multiple of vector length (arg 1)
## Warning: 365 parsing failures.
## row # A tibble: 5 x 5 col row col expected actual file expected <int> <chr> <chr> <chr> <chr> actual 1 24 HH:MM (LST) valid date 24:00:00 'solar_hilo_2010.csv' file 2 48 HH:MM (LST) valid date 24:00:00 'solar_hilo_2010.csv' row 3 72 HH:MM (LST) valid date 24:00:00 'solar_hilo_2010.csv' col 4 96 HH:MM (LST) valid date 24:00:00 'solar_hilo_2010.csv' expected 5 120 HH:MM (LST) valid date 24:00:00 'solar_hilo_2010.csv'
## ... ................. ... ............................................................. ........ ............................................................. ...... ............................................................. .... ............................................................. ... ............................................................. ... ............................................................. ........ .............................................................
## See problems(...) for more details.
Data for CO2 emissions (by country) from WorldBank
co2 <- read_csv("co2_wb.csv")
## Parsed with column specification:
## cols(
## .default = col_double(),
## country = col_character(),
## code = col_character(),
## indicator = col_character(),
## ind_code = col_character(),
## `2015` = col_character(),
## `2016` = col_character(),
## `2017` = col_character()
## )
## See spec(...) for full column specifications.
co2_tidy <- co2 %>%
filter(country == "China" |
country == "United States" |
country == "European Union" |
country == "India" |
country == "Russian Federation") %>%
gather(year, emissions_kt, `1960`:`2014`) %>%
select(country, year, emissions_kt)
co2_plot <- ggplot(co2_tidy, aes(x = as.numeric(year), y = emissions_kt, group = country)) +
geom_line(aes(color = country), size = 1) +
geom_point(aes(color = country)) +
geom_text(aes(label = country, color = country), position = position_nudge(y = 200000), size = 4) +
scale_color_manual(breaks = c("China", "United States","European Union","India", "Russian Federation"), values = c("goldenrod1","darkorchid1","dodgerblue","coral1","cyan3")) +
labs(x = "Year", y = expression(CO[2]~Emissions~(kT))) +
coord_cartesian(clip = 'off') +
transition_reveal(country, as.numeric(year)) +
theme_minimal() +
theme(legend.position = "NA")
co2_plot
## Warning: Removed 2 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 2 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 2 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 3 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 3 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 4 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 4 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 5 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 5 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 6 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 6 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 7 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 8 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 8 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 9 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 9 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 10 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 10 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 11 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 11 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 12 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 12 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 13 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 14 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 14 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 15 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 15 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 16 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 16 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 17 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 17 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 18 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 18 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 19 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 20 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 20 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 21 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 21 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 22 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 22 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 23 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 23 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 24 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 24 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 25 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 26 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 26 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 27 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 27 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 28 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 28 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 29 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 29 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 30 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 30 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 31 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 31 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 33 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 33 rows containing missing values (geom_path).
## Warning: Removed 1 rows containing missing values (geom_point).
## Warning: Removed 1 rows containing missing values (geom_text).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
## Warning: Removed 32 rows containing missing values (geom_path).
aq_df <- read_csv("aq_wb.csv")
## Parsed with column specification:
## cols(
## .default = col_double(),
## country = col_character(),
## code = col_character(),
## indicator = col_character(),
## ind_code = col_character(),
## `1960` = col_integer(),
## `1961` = col_integer(),
## `1962` = col_integer(),
## `1963` = col_integer(),
## `1964` = col_integer(),
## `1965` = col_integer(),
## `1966` = col_integer(),
## `1967` = col_integer(),
## `1968` = col_integer(),
## `1969` = col_integer(),
## `1970` = col_integer(),
## `1971` = col_integer(),
## `1972` = col_integer(),
## `1973` = col_integer(),
## `1974` = col_integer(),
## `1975` = col_integer()
## # ... with 9 more columns
## )
## See spec(...) for full column specifications.
aq_tidy <- aq_df %>%
filter(country == "Brazil" |
country == "Chile" |
country == "Ecuador" |
country == "United States") %>%
gather(year, aq_prod, `1960`:`2014`) %>%
filter(year >= 1990) %>%
mutate(aq_mil = aq_prod/1000000) %>%
select(country, year, aq_mil)
# PLOT IT
aq_plot <- ggplot(aq_tidy, aes(x = as.numeric(year), y = aq_mil, group = country)) +
geom_line(aes(color = country), size = 1) +
geom_point(aes(color = country)) +
geom_text(aes(label = country, color = country), position = position_nudge(y = 0.03, x = 1), size = 5) +
scale_color_manual(values = c("darkcyan","goldenrod3","darkmagenta","chocolate1")) +
labs(x = "Year", y = expression(Aquaculture~Production~(10^6~metric~tons))) +
coord_cartesian(clip = 'off') +
transition_reveal(country, as.numeric(year)) +
theme_bw() +
theme(legend.position = "NA", panel.grid.minor = element_blank(), panel.grid.major = element_blank(),
axis.text.x = element_text(size=12), axis.text.y = element_text(size = 14),
axis.title.x = element_text(size=14, face = "bold"),
axis.title.y = element_text(size=14,face="bold")) +
scale_x_continuous(expand = c(0,0), limits = c(1990, 2017)) +
scale_y_continuous(expand = c(0,0))
aq_plot
# expression(Aquaculture~Production~(10^6~metric tons))
# TRYING ANOTHER THING: custom points (fish)
fish = sample("fish.png")
aq_plot2 <- ggplot(aq_tidy, aes(x = as.numeric(year), y = aq_mil, group = country)) +
geom_line(aes(color = country), size = 1) +
geom_point(aes(color = country)) +
geom_image(aes(image = fish)) +
geom_text(aes(label = country, color = country), position = position_nudge(y = 0.04, x = 1), size = 5) +
scale_color_manual(values = c("darkcyan","goldenrod3","darkmagenta","chocolate1")) +
labs(x = "Year", y = expression(Aquaculture~Production~(10^6~metric~tons))) +
coord_cartesian(clip = 'off') +
transition_reveal(country, as.numeric(year)) +
theme_bw() +
theme(legend.position = "NA", panel.grid.minor = element_blank(), panel.grid.major = element_blank(),
axis.text.x = element_text(size=12), axis.text.y = element_text(size = 14),
axis.title.x = element_text(size=14, face = "bold"),
axis.title.y = element_text(size=14,face="bold")) +
scale_x_continuous(expand = c(0,0), limits = c(1990, 2017)) +
scale_y_continuous(expand = c(0,0))
## Warning: Ignoring unknown parameters: image_colour
aq_plot2